Logistic Regression · First-Year Value Optimizer — Minkyu Sung
Tools I built · Predictive Analytics

First-Year Value Optimizer.

Fits a logistic regression of customer response on price, promo, and message, then projects first-year value across the whole price grid and surfaces the combination that maximizes it. It loads with a sample dataset so you can see it work — edit the costs, add cases, or upload your own CSV and the model refits live.

Cost assumptions

Response data

Price Promo Msg Resp
${{ row.price }} {{ row.promo }} {{ row.message }} {{ row.response }}
{{ nRows }} cases · CSV columns: Customer_ID, Price, Promo, Message, Response
Optimal combination
{{ bestPrice }}
optimal price
{{ bestVal }}
Max first-year value
{{ bestCombo }}
Promo · Message

First-year value vs price

FYV = (price − install) · P(response) − acq
{{ yMax }} {{ yMid }} {{ yMin }} {{ xMin }} {{ xMid }} {{ xMax }} {{ bestLabel }}
No promo · no msg Promo only Message only Promo + message

Fitted logistic coefficients

{{ b0 }}
Intercept
{{ b1 }}
Price (per $1)
{{ b2 }}
Promo
{{ b3 }}
Message
Ported from the original R Shiny app (glm, binomial logit). Fit runs entirely in-browser via Newton–Raphson.
The assignment behind it

From a course brief to a decision tool.

Built for a graduate New Product Marketing mini-project brief, which asked us to model how customers respond to a new product's price, promotion, and messaging and recommend the launch configuration. The original submission was an R Shiny app fitting a binomial logit on the response data; this is that model rebuilt to run in the browser.

Why it matters: most launch debates argue price and promo in isolation. Tying response probability to first-year value — revenue net of installation and acquisition cost — turns those debates into one number per scenario, so the team can defend a single price × promo × message combination instead of guessing. The same loop generalizes to any subscription or install-based pricing decision.